1. Field of Invention
The field of invention relates generally to computer systems and, more specifically but not exclusively, relates to providing a pre-boot driver for use during the operating system runtime of a computer system.
2. Background Information
In a typical PC architecture, the initialization and configuration of the computer system by the Basic Input/Output System (BIOS) is commonly referred to as the pre-boot phase. The pre-boot phase is generally defined as the firmware that runs between the processor reset and the first instruction of the Operating System (OS) loader. At the start of a pre-boot, it is up to the code in the firmware to initialize the system to the point that an operating system loaded off of media, such as a hard disk, can take over. The start of the OS load begins the period commonly referred to as OS runtime. During OS runtime, the firmware acts as an interface between software and hardware components of a computer system. As computer systems have become more sophisticated, the operational environment between the application and OS levels and the hardware level is generally referred to as the firmware or the firmware environment.
During operating system runtime, applications and the operating system itself often need access to various hardware devices of the computer system. The OS generally uses interfaces, commonly referred to as OS drivers, to access the hardware devices. However, if the OS experiences a problem and cannot use or find the appropriate driver, software or the computer system cannot communicate with hardware devices. A hardware device may only be accessible during pre-boot by the firmware because there is no corresponding OS driver for the device.
Also, accessing hardware devices in a crisis recovery mode, such as an OS safe mode, may be difficult. During safe mode, the OS may attempt to access hardware devices using BIOS interrupt function calls advertised in a BIOS Interrupt Vector Table (IVT). However, not all hardware devices of the system are necessarily advertised in the BIOS IVT. Further, interrupt function calls do not involve interpreted code, so there is no guarantee how the interrupt call may affect the operating system.
Additionally, in an OS safe mode, the operating system may not want to access a hardware device using an OS driver because the behavior of OS drivers is unpredictable. Misbehaving device drivers are often the source of operating system failures. Without the ability to manage the OS driver code execution, the OS is not assured what affect the OS device driver may have on the system until after the code has already run.